#include <bits/stdc++.h>
using namespace std;
//解法一
// int main()
// {
//     string s1;getline(cin,s1);
//     if (s1.empty())return 0;
//     string s;
//     s += toupper(s1[0]);
//     for (int i = 1; i < s1.size(); ++i) {
//         if (s1[i] == ' ' && i + 1 < s1.size()) {
//             s += toupper(s1[i + 1]);
//             ++i;//跳过当前字符
//         }
//     }
// }
//解法二
// int main()
// {
//     string s;
//     while(cin>>s)
//     {
//         if(s[0]>='a'&&s[0]<='z')cout<<(char)(s[0]-32);
//         else cout<<s[0];
//     }
//     return 0;
// }


//滑动窗口

//最小区间和为x且区间左端点值最小
int main()
{
    int n,x;
    cin>>n>>x;
    int a[n];
    for(int i=0;i<n;i++)cin>>a[i];
    int sum=0,minlen=INT_MAX,minl=-1;
    for(int left=0,right=0;right<n;right++)
    {
        sum+=a[right];
        while(sum>=x)
        {
            if(right-left+1<minlen||(right-left+1)<minlen&&left<minl)
            {
                minlen=right-left+1;
                minl=left;
            }
            sum-=a[left++];
        }
    }
    cout<<minl+1<<" "<<minlen+minl<<endl;
    return 0;
}
// using ll= long long;
// int main()
// {
//     ll n,k,c,sum=0;
//     priority_queue<int> pq;
//     cin>>n>>k;
//     for(int i=0;i<n;i++)
//     {
//         cin>>c;
//         sum+=c;
//         if(c%2==0)pq.push(c);
//     }
//     while(pq.size()&&k--)
//     {
//         ll t=pq.top();
//         pq.pop();
//         sum-=t/2;
//         if((t/2)%2==0)pq.push(t/2);
//     }
//     cout<<sum<<endl;
//     return 0;
    
// }